$namespace: 'xm' !default;
$block-sel: '-' !default;
$elem-sel: '__' !default;
$mod-sel: '--' !default;

@mixin b($block) {
    $B:#{$namespace + $block-sel + $block};
    .#{$B} {
        @content;
    }
}

@mixin e($el) {
    $selector: &;
    @at-root {
        #{$selector + $elem-sel + $el} {
            @content
        }
    }
}

@mixin m($m) {
    $selector: &;
    @at-root {
        #{$selector + $mod-sel + $m} {
            @content
        }
    }
}

@mixin bem($bname, $ename, $mname){
  @at-root {
    @include b($bname) {
      @include e($ename) {
        @include m($mname) {
          @content;
        }
      }
    }
  }
}

@mixin bfc {
  height: 100%;
  overflow: hidden;
}
